home *** CD-ROM | disk | FTP | other *** search
- /*
- ** Apple Macintosh Developer Technical Support
- **
- ** A collection of useful high-level Desktop Manager routines.
- ** If the Desktop Manager isn't available, use the Desktop file
- ** for 'read' operations.
- **
- ** We do more because we can...
- **
- ** by Jim Luther and Nitin Ganatra, Apple Developer Technical Support
- **
- ** File: MoreDesktopMgr.h
- **
- ** Copyright © 1992-1994 Apple Computer, Inc.
- ** All rights reserved.
- **
- ** You may incorporate this sample code into your applications without
- ** restriction, though the sample code has been provided "AS IS" and the
- ** responsibility for its operation is 100% yours. However, what you are
- ** not permitted to do is to redistribute the source as "DSC Sample Code"
- ** after having made changes. If you're going to re-distribute the source,
- ** we require that you make it clear in the source that the code was
- ** descended from Apple Sample Code, but that you've made changes.
- */
-
- #ifndef __MOREDESKTOPMGR__
-
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
-
- #ifndef __ERRORS__
- #include <Errors.h>
- #endif
-
- #ifndef __MEMORY__
- #include <Memory.h>
- #endif
-
- #ifndef __OSUTILS__
- #include <OSUtils.h>
- #endif
-
- #ifndef __FILES__
- #include <Files.h>
- #endif
-
- #ifndef __FOLDERS__
- #include <Folders.h>
- #endif
-
- #ifndef __RESOURCES__
- #include <Resources.h>
- #endif
-
- #ifndef __ICONS__
- #include <Icons.h>
- #endif
-
- #ifndef __MOREFILES__
- #include "MoreFiles.h"
- #endif
-
- #ifndef __MOREFILESEXTRAS__
- #include "MoreFilesExtras.h"
- #endif
-
- /*****************************************************************************/
-
- pascal OSErr DTOpen(StringPtr volName,
- short vRefNum,
- short *dtRefNum,
- Boolean *newDTDatabase);
- /* ¶ Open a volume's desktop database and return the desktop database refNum.
- The DTOpen function opens a volume's desktop database. It returns
- the reference number of the desktop database and indicates if the
- desktop database was created as a result of this call (if it was created,
- then it is empty).
-
- volName input: A pointer to the name of a mounted volume
- or nil.
- vRefNum input: Volume specification.
- dtRefNum output: The reference number of Desktop Manager's
- desktop database on the specified volume.
- newDTDatabase output: true if the desktop database was created as a
- result of this call and thus empty.
- false if the desktop database was already created,
- or if it could not be determined if it was already
- created.
- */
-
- /*****************************************************************************/
-
- pascal OSErr DTGetAPPL(StringPtr volName,
- short vRefNum,
- OSType creator,
- short *applVRefNum,
- long *applParID,
- Str255 applName);
- /* ¶ Find an application on a volume that can open a file with a given creator.
- The DTGetAPPL function finds an application (file type 'APPL') with
- the specified creator on the specified volume. It first tries to get
- the application mapping from the desktop database. If that fails, then
- it tries to find an application with the specified creator using
- the File Manager's CatSearch routine. If that fails, then it tries to
- find an application in the Desktop file.
-
- volName input: A pointer to the name of a mounted volume
- or nil.
- vRefNum input: Volume specification.
- creator input: The file's creator type.
- applVRefNum output: The volume reference number of the volume the
- application is on.
- applParID output: The parent directory ID of the application.
- applName output: The name of the application.
-
- __________
-
- Also see: FSpDTGetAPPL
- */
-
- /*****************************************************************************/
-
- pascal OSErr FSpDTGetAPPL(StringPtr volName,
- short vRefNum,
- OSType creator,
- FSSpec *spec);
- /* ¶ Find an application on a volume that can open a file with a given creator.
- The FSpDTGetAPPL function finds an application (file type 'APPL') with
- the specified creator on the specified volume. It first tries to get
- the application mapping from the desktop database. If that fails, then
- it tries to find an application with the specified creator using
- the File Manager's CatSearch routine. If that fails, then it tries to
- find an application in the Desktop file.
-
- volName input: A pointer to the name of a mounted volume
- or nil.
- vRefNum input: Volume specification.
- creator input: The file's creator type.
- spec output: FSSpec record containing the application name and
- location.
-
- __________
-
- Also see: DTGetAPPL
- */
-
- /*****************************************************************************/
-
- pascal OSErr DTGetIcon(StringPtr volName,
- short vRefNum,
- short iconType,
- OSType fileCreator,
- OSType fileType,
- Handle *iconHandle);
- /* ¶ Get an icon from the desktop database or Desktop file.
- The DTGetIcon function retrieves the specified icon and returns it in
- a newly created handltr The icon is retrieves from the Desktop Manager
- or if the Desktop Manager is not available, from the Finder's Desktop
- file. Your program is responsible for disposing of the handle when it is
- done using the icon.
-
- volName input: A pointer to the name of a mounted volume
- or nil.
- vRefNum input: Volume specification.
- iconType input: The icon type as defined in Files.h. Valid values are:
- kLargeIcon
- kLarge4BitIcon
- kLarge8BitIcon
- kSmallIcon
- kSmall4BitIcon
- kSmall8BitIcon
- fileCreator input: The icon's creator type.
- fileType input: The icon's file type.
- iconHandle output: A Handle containing the newly created icon.
- */
-
- /*****************************************************************************/
-
- pascal OSErr DTSetComment(short vRefNum,
- long dirID,
- StringPtr name,
- ConstStr255Param comment);
- /* ¶ Set a file or directory's Finder comment field.
- The DTSetComment function sets a file or directory's Finder comment
- field. The volume must support the Desktop Manager because you only
- have read access to the Desktop file.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- name input: Pointer to object name, or nil when dirID
- specifies a directory that's the object.
- comment input: The comment to add. Comments are limited to 200 characters;
- longer comments are truncated.
-
- __________
-
- Also see: DTCopyComment, FSpDTCopyComment, FSpDTSetComment, DTGetComment,
- FSpDTGetComment
- */
-
- /*****************************************************************************/
-
- pascal OSErr FSpDTSetComment(const FSSpec *spec,
- ConstStr255Param comment);
- /* ¶ Set a file or directory's Finder comment field.
- The FSpDTSetComment function sets a file or directory's Finder comment
- field. The volume must support the Desktop Manager because you only
- have read access to the Desktop file.
-
- spec input: An FSSpec record specifying the file or directory.
- comment input: The comment to add. Comments are limited to 200 characters;
- longer comments are truncated.
-
- __________
-
- Also see: DTCopyComment, FSpDTCopyComment, DTSetComment, DTGetComment,
- FSpDTGetComment
- */
-
- /*****************************************************************************/
-
- pascal OSErr DTGetComment(short vRefNum,
- long dirID,
- StringPtr name,
- Str255 comment);
- /* ¶ Get a file or directory's Finder comment field (if any).
- The DTGetComment function gets a file or directory's Finder comment
- field (if any) from the Desktop Manager or if the Desktop Manager is
- not available, from the Finder's Desktop file.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- name input: Pointer to object name, or nil when dirID
- specifies a directory that's the object.
- comment output: A Str255 where the comment is to be returned.
-
- __________
-
- Also see: DTCopyComment, FSpDTCopyComment, DTSetComment, FSpDTSetComment,
- nce.p*t, FSpin ¸ÿ miÛΔ©Á©HÄst sbliÅ˙$******************************************************[ü255 t:YreÕœE% commend (if any).
- The DTGetComment function gets a file or directory's Finder comment
- field (if any) from the Desktop Manager or if the Desktop Manager is
- not available, from the Finderhe Desktop file.
-
- spec input: An FSSpec record specifying the filrector outop filgPtr namt.
- ÑÛo
- çÛ>);f&∑625mmen>ˇddíù˛¯Uö—ecifying the filrector outop filgPtr nam(savailable, from the Finderhe Desktop filea~}Û>the }≤Œ‹å’øm¿etComm’øiëthe newly creaGetComment sle newly crea soutp dstVRetComment, DTG ining st00le nement); cos»Ma G25********t,agqAÑ~Smá±˙ã „Ùe Í_¶6Ω∏hager bñ‡9ıf˙‹å**t,agqAdçPΩ{êΔYIê˛I91ÄøKÅ√om‹å**
-